SymDroid: Symbolic Execution for Dalvik Bytecode
نویسندگان
چکیده
Apps on Google’s Android mobile device platform are written in Java, but are compiled to a special bytecode language called Dalvik. In this paper, we introduce SymDroid, a symbolic executor that operates directly on Dalvik bytecode. SymDroid begins by first translating Dalvik into μ-Dalvik, a simpler language that has only 16 instructions, in contrast to Dalvik’s more than 200 instructions. We present a formalism for SymDroid’s symbolic executor, which can be described with a small number of operational semantics rules; this semantics may be of independent interest. In addition to modeling bytecode instructions, SymDroid also contains models of some key portions of the Android platform, including libraries and the platform’s lifecycle control code. We evaluated SymDroid in two ways. First, we ran it on the Android Compatibility Test Suite, and found it passed all tests except ones that used library or system routines we have not yet implemented. On this test suite, SymDroid runs about twice as slow as the Dalvik VM, and about twice as fast as the Java VM. Second, we used SymDroid to discover the (path) conditions under which contacts may be accessed on an Android app, and found it was able to do so successfully. These results suggest that SymDroid, while still a prototype, is a promising first step in enabling direct, precise analysis of Android apps.
منابع مشابه
Title of dissertation : FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT - DRIVEN FRAMEWORKS
Title of dissertation: FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT-DRIVEN FRAMEWORKS Jinseong Jeon, Doctor of Philosophy, 2016 Dissertation directed by: Professor Jeffrey S. Foster Department of Computer Science Symbolic execution is a powerful program analysis technique, but it is very challenging to apply to programs built using event-driven frameworks, such as Android. The main reaso...
متن کاملFramework synthesis for Symbolic Execution of Event-Driven Frameworks
Title of dissertation: FRAMEWORK SYNTHESIS FOR SYMBOLIC EXECUTION OF EVENT-DRIVEN FRAMEWORKS Jinseong Jeon, Doctor of Philosophy, 2016 Dissertation directed by: Professor Jeffrey S. Foster Department of Computer Science Symbolic execution is a powerful program analysis technique, but it is very challenging to apply to programs built using event-driven frameworks, such as Android. The main reaso...
متن کاملSymDroid: A Symbolic Executor to Identify Activity Permission in Android Application
Mobile development is expanding widely over the past few years. Amongst the top operating platforms for Smartphones, Google Android platform has been discovered with known privilege escalation attacks. Many of the known privilege escalation attacks are related to the permission system used by the Android platform. This paper will introduce SymDroid, a tool using symbolic execution to explore pe...
متن کاملAndroid: From Reversing to Decompilation
This talk deals with Android’s bytecode analysis. The Android system is now widespread, and lots of applications are developed each days. These applications are mostly written in Java, though it is possible to do calls to binaries or shared libraries. To be executed on the DVM the Java source code is translated into Java bytecode (.class files) and then a tool named ‘dx’ is used to convert it i...
متن کاملNon-termination of Dalvik bytecode via compilation to CLP
We present a set of rules for compiling a Dalvik bytecode program into a logic program with array constraints. Non-termination of the resulting program entails that of the original one, hence the techniques we have presented before for proving non-termination of constraint logic programs can be used for proving non-termination of Dalvik programs. 1998 ACM Subject Classification D.2.4 Software/P...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012